package com.atguigu.gmall.payment.service;

import java.util.Map;

/**
 * title:
 * author: Gyh
 * date:2023-05-10 18:17
 * Description:
 */
public interface AlipayService {

    /**
     * 调用支付宝接口产生支付页面
     * @param orderId
     * @return
     */
    String createAlipayForm(Long orderId);

    /**
     * 处理用户支付成功后,支付宝异步通知用户支付结果接口
     * @param paramsMap 支付提交参数
     * @return "success" 支付宝收到该结果,停止通知,如果未响应"success"做到最大努力通知,额外通知7次
     */
    String notifyGmallPayResult(Map<String, String> paramsMap);

    /**
     * 双方协商一致后退款
     * @param orderId
     * @return
     */
    void refund(Long orderId);

    /**
     * 关闭支付宝交易
     * @param orderId
     */
    void closeAliPay(Long orderId);

    /**
     * 根据订单查询交易是否可以支付
     * @param orderId
     * @return
     */
    Boolean checkPaymentSatus(Long orderId);
}
